#ifndef SCHEDULER_MFQS_H
#define SCHEDULER_MFQS_H

#include <iostream>
#include <list>
#include <vector>
#include "mfbase.h"
#include "mfqueue.h"
#include "generic_scheduler.h"
#include "process.h"

using namespace std;

class Scheduler_MFQS : public Generic_Scheduler {

	public:
		Scheduler_MFQS (int, int, int);
		~Scheduler_MFQS ();

		Process run_processes(int);
		void fill_queue(int);
		bool queues_not_empty();
	
	private:
		void begin (list<Process> *);
		
		list<Process> processes;
		vector<MFQueue> queues;
		MFBase last_queue;
		int time_quantum;
		int num_queues;
		int clock;
};

#endif
